<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>对象与原型链属性检测</title>
</head>
<body>
    <script>
        let hd = [1,2,3];
        console.log(hd);
        // hd中有一个length，是它自己的属性

        // 检测某一个属性是否是自己的属性
        console.log(hd.hasOwnProperty('length'));   //true

        // Prototype中是它原型(父亲)的属性
        console.log(hd.hasOwnProperty('concat'));   //false


        // 既能检测是原型，又能检测是自己属性的方法
        console.log('length' in hd);   //true
        console.log('concat' in hd);   //true


        let a = {name : 'aaa'};
        let b = {title : 'bbb'};
        // 设置b是a的原型
        Object.setPrototypeOf(a,b);
        console.log(a);
        console.log(a.hasOwnProperty('title'));
        console.log('title' in a);


        function oss(options){
            if(!options.hasOwnProperty('host')){
                throw new Error('必须设置主机地址');
            }
        }
        oss({name:"华为"});
    </script>
</body>
</html>